
public class CmdParser {

	public static BitmapCmd parseCmd(String cmdString) throws Exception {
		BitmapCmd cmd = new BitmapCmd();
		
		int index = 0;
		String[] spiltedStrings = cmdString.split(" ");
		
		if(spiltedStrings[index++].compareTo("I") == 0) {
			cmd.mCommend = BitmapCmd.CMD_Initialize;
			cmd.mX1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY1 = Integer.parseInt(spiltedStrings[index++]);
		}
		else if(spiltedStrings[0].compareTo("C") == 0) {
			cmd.mCommend = BitmapCmd.CMD_Clear;
		}
		else if(spiltedStrings[0].compareTo("L") == 0) {
			cmd.mCommend = BitmapCmd.CMD_DrawPoint;
			cmd.mX1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY1 = Integer.parseInt(spiltedStrings[index++]);
		}
		else if(spiltedStrings[0].compareTo("V") == 0) {
			cmd.mCommend = BitmapCmd.CMD_DrawV;
			cmd.mX1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY2 = Integer.parseInt(spiltedStrings[index++]);
		}
		else if(spiltedStrings[0].compareTo("H") == 0) {
			cmd.mCommend = BitmapCmd.CMD_DrawH;
			cmd.mX1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mX2 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY1 = Integer.parseInt(spiltedStrings[index++]);
		}
		else if(spiltedStrings[0].compareTo("K") == 0) {
			cmd.mCommend = BitmapCmd.CMD_DrawRectangle;
			cmd.mX1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mX2 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY2 = Integer.parseInt(spiltedStrings[index++]);
		}
		else if(spiltedStrings[0].compareTo("F") == 0) {
			cmd.mCommend = BitmapCmd.CMD_FillArea;
			cmd.mX1 = Integer.parseInt(spiltedStrings[index++]);
			cmd.mY1 = Integer.parseInt(spiltedStrings[index++]);
		}
		else if(spiltedStrings[0].compareTo("S") == 0) {
			cmd.mCommend = BitmapCmd.CMD_Print;
			cmd.mFilename = spiltedStrings[index++];			
		}
		else if(spiltedStrings[0].compareTo("X") == 0) {
			cmd.mCommend = BitmapCmd.CMD_Exit;
		}
		else {
			throw new Exception("Unknown Command Type");
		}
		
		return cmd;
	}

}
